package com.micro.train.dto;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 火车库存DTO
 */
@Data
public class TrainInventoryDTO {
    
    /**
     * 列车ID
     */
    private Long trainId;
    
    /**
     * 车次号
     */
    private String trainNumber;
    
    /**
     * 列车类型
     */
    private String trainType;
    
    /**
     * 始发站名称
     */
    private String departureStationName;
    
    /**
     * 终点站名称
     */
    private String terminalStationName;
    
    /**
     * 出发时间
     */
    private String departureTime;
    
    /**
     * 到达时间
     */
    private String arrivalTime;
    
    /**
     * 乘车日期
     */
    private String travelDate;
    
    /**
     * 座位类型库存统计
     */
    private Map<String, SeatTypeInventory> seatTypeInventories;
    
    /**
     * 总座位数
     */
    private Integer totalSeats;
    
    /**
     * 可用座位数
     */
    private Integer availableSeats;
    
    /**
     * 已售座位数
     */
    private Integer soldSeats;
    
    /**
     * 座位类型库存详情
     */
    @Data
    public static class SeatTypeInventory {
        /**
         * 座位类型名称
         */
        private String seatTypeName;
        
        /**
         * 座位类型代码
         */
        private Integer seatTypeCode;
        
        /**
         * 总座位数
         */
        private Integer totalSeats;
        
        /**
         * 可用座位数
         */
        private Integer availableSeats;
        
        /**
         * 已售座位数
         */
        private Integer soldSeats;
        
        /**
         * 锁定座位数
         */
        private Integer lockedSeats;
        
        /**
         * 最低价格
         */
        private BigDecimal minPrice;
        
        /**
         * 最高价格
         */
        private BigDecimal maxPrice;
        
        /**
         * 平均价格
         */
        private BigDecimal averagePrice;
    }
}
